//
//  ErrorExceptionViewController.m
//
//  Created by 周成龙
//

#import "ErrorExceptionViewController.h"


NSString *const ErrorExceptionDomain;

typedef NS_ENUM(NSUInteger, ErrorException) {
    ErrorExceptionUnknow = -1,
    ErrorExceptionInternalInconsistency = 100
};

@interface ErrorExceptionViewController ()

@end

@implementation ErrorExceptionViewController
#pragma mark - LifeCycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
    // NSError封装了三条信息
    // 1. error domain（错误范围）错误发生的范围，也就是产生错误的根源，通常用一个特有的全局变量来定义。
    // 2. error code（错误代码）独有的错误代码，用以指明在某个范围内具有发生何种错误。
    // 3. user info（用户信息）有关此错误的额外信息，本地化描述。
    
    //[NSError errorWithDomain:<#(nonnull NSErrorDomain)#> code:<#(NSInteger)#> userInfo:<#(nullable NSDictionary *)#>];
    
    // 抛出异常
    // [NSException exceptionWithName:@"exception name" reason:@"there was an error" userInfo:nil];
    
    // 只有发生了可使整个应用程序奔溃的严重错误时，才使用异常；
    // 有错误不那么严重的情况下，可以指派“委托方法”来处理错误，也可以把错误信息放在NSError对象里，经由“输出函数”返回给调用者。
    
    
}



#pragma mark - Private

#pragma mark - Delegate

#pragma mark - Setter / Getter

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}



/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
